Skip to main content

compio_runtime\fd\async_fd/
windows.rs

1use std::os::windows::io::{
2    AsRawHandle, AsRawSocket, FromRawHandle, FromRawSocket, RawHandle, RawSocket,
3};
4
5use compio_driver::AsFd;
6
7use super::AsyncFd;
8
9impl<T: AsFd + AsRawHandle> AsRawHandle for AsyncFd<T> {
10    fn as_raw_handle(&self) -> RawHandle {
11        self.inner.as_raw_handle()
12    }
13}
14
15impl<T: AsFd + AsRawSocket> AsRawSocket for AsyncFd<T> {
16    fn as_raw_socket(&self) -> RawSocket {
17        self.inner.as_raw_socket()
18    }
19}
20
21impl<T: AsFd + FromRawHandle> FromRawHandle for AsyncFd<T> {
22    unsafe fn from_raw_handle(handle: RawHandle) -> Self {
23        unsafe { Self::new_unchecked(FromRawHandle::from_raw_handle(handle)) }
24    }
25}
26
27impl<T: AsFd + FromRawSocket> FromRawSocket for AsyncFd<T> {
28    unsafe fn from_raw_socket(sock: RawSocket) -> Self {
29        unsafe { Self::new_unchecked(FromRawSocket::from_raw_socket(sock)) }
30    }
31}